如何使用patch命令打补丁

您所在的位置:网站首页 silent patch补丁 如何使用patch命令打补丁

如何使用patch命令打补丁

2023-10-25 15:43| 来源: 网络整理| 查看: 265

有时候因为条件限制,我们不能使用git仓库进行代码的更新工作。 例如你需要更新服务器的代码,一般的生产环境上面的代码是某个版本的代码而非整个git仓库。 当你进行了一些开发,你需要将你的代码部署到服务器上面,进行一系列测试。 这时,使用patch是一个不错的办法。

确保你的服务器上安装了patch命令。如果没有安装,在联网状态下安装一下也就几分钟的事。在你本地生成patch文件。在你的git仓库中,生成patch 文件有两种方法。 使用 git format-patch commit_id。这条命令会把从HEAD到你指定的commit_id的所有提交都单独生成一个patch文件。这种情况下生成的patch 文件只适用于服务器上要更新的 代码也是一个git仓库里的代码。使用 git diff master (or commit_id) > test.patch。这条命令生成的patch文件可以在linux系统上直接用patch命令打到代码里,也就是所谓的通用patch。这里master就是master分支;也可以是你想对比的版本号。比如HEAD^,就会把你的最新代码和 HEAD^这个版本进行比较,并生成patch文件。 将你的patch文件拷贝到你的服务器工程目录中,使用命令patch -pn < patch_file n的意思就是忽略掉几个/。例如:--- a/aaa/bbb/ccc.py +++ b/aaa/bbb/ccc.py 如果你把这个patch 文件放到你服务器上的../aaa目录,那么你只需要忽略掉上面的diff比较的文件路径的第一个/就可以了,也就是你应该使用命令:patch -p1 < patch_file

注意 应用patch到时候会有一些输出,注意看是否有错误信息。 另外,应用完成以后记得查找一下.rej文件,如果有这种文件表示应用失败,一般的原因就是代码冲突。 不要慌,打开这个.rej以及相应的.orig文件对比一下你就知道冲突在哪了,解决掉冲突就可以了。

撤销patch 将打上的补丁给恢复回去: patch -R pn < patch_file



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3